﻿/*
 Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
 For licensing, see LICENSE.md or http://ckeditor.com/license
 */
CKEDITOR.dialog.add("button", function (b) {
    function d(a) {
        var b = this.getValue();
        b ? (a.attributes[this.id] = b, "name" == this.id && (a.attributes["data-cke-saved-name"] = b)) : (delete a.attributes[this.id], "name" == this.id && delete a.attributes["data-cke-saved-name"])
    }

    return {
        title: b.lang.forms.button.title, minWidth: 350, minHeight: 150, onShow: function () {
            delete this.button;
            var a = this.getParentEditor().getSelection().getSelectedElement();
            a && a.is("input") && a.getAttribute("type") in {button: 1, reset: 1, submit: 1} && (this.button =
                a, this.setupContent(a))
        }, onOk: function () {
            var a = this.getParentEditor(), b = this.button, d = !b, c = b ? CKEDITOR.htmlParser.fragment.fromHtml(b.getOuterHtml()).children[0] : new CKEDITOR.htmlParser.element("input");
            this.commitContent(c);
            var e = new CKEDITOR.htmlParser.basicWriter;
            c.writeHtml(e);
            c = CKEDITOR.dom.element.createFromHtml(e.getHtml(), a.document);
            d ? a.insertElement(c) : (c.replace(b), a.getSelection().selectElement(c))
        }, contents: [{
            id: "info", label: b.lang.forms.button.title, title: b.lang.forms.button.title, elements: [{
                id: "name",
                type: "text", label: b.lang.common.name, "default": "", setup: function (a) {
                    this.setValue(a.data("cke-saved-name") || a.getAttribute("name") || "")
                }, commit: d
            }, {
                id: "value",
                type: "text",
                label: b.lang.forms.button.text,
                accessKey: "V",
                "default": "",
                setup: function (a) {
                    this.setValue(a.getAttribute("value") || "")
                },
                commit: d
            }, {
                id: "type",
                type: "select",
                label: b.lang.forms.button.type,
                "default": "button",
                accessKey: "T",
                items: [[b.lang.forms.button.typeBtn, "button"], [b.lang.forms.button.typeSbm, "submit"], [b.lang.forms.button.typeRst,
                    "reset"]],
                setup: function (a) {
                    this.setValue(a.getAttribute("type") || "")
                },
                commit: d
            }]
        }]
    }
});